A storage server is a type of network storage controller which is a special purpose data processing system used to store and retrieve data on behalf of one or more clients on a network. A storage server operates on behalf of one or more clients to store and manage data in a set of mass storage devices, such as magnetic or optical storage-based disks or tapes. In conventional network storage systems, the mass storage devices may be organized into one or more groups of drives (e.g., redundant array of inexpensive disks (RAID)). A storage server also typically includes internal memory that is used as a buffer cache, to speed up the reading and writing of data from and to (respectively) the main mass storage system.
It is desirable to improve the performance of any data processing system. In the case of a storage server, one way to accomplish this is by reducing the latency and increasing the random access throughput associated with accessing the storage server's main mass storage subsystem. In this regard, flash memory, particularly NAND flash memory, has certain very desirable properties. Flash memory generally has a very fast read access speed compared to that of conventional hard disk drives.
However, conventional approaches to using flash memory in SATA/SAS-SSD, PCIE-SSD and/or NVME-SSD form-factors all have certain characteristics related to treatment as periphery devices that make their use in enterprise storage systems problematic. In particular, a conventional flash memory device is typically accessed by a host periphery port through a serial command/data interface with low priority to use memory that becomes a bottleneck in applications where low latency and/or high throughput are needed. Those serial interfaces usually need high power consumption and generate substantial heat, even as the attached periphery devices in idle states.
In addition, while flash memory generally has superior read performance compared to conventional hard disk drives, its write latency can be 16 times longer than its read time. Furthermore, flash memory tends to wear out after a finite number of erase operations.